;Assembler header file for ServiceInternational
;written by DefMod (Dec 31 2005) on Sat Dec 31 14:03:54 2005
;Jonathan Coxhead, jonathan@doves.demon.co.uk, 29 Jun 1995

        [       :LNOT: :DEF: ServiceInternational_Hdr
        GBLS    ServiceInternational_Hdr

        [       :LNOT: :DEF: Get_Types
        GBLS    Get_Types
        ]
        [       :LNOT: :DEF: Types_Hdr
Get_Types                       SETS    "GET oslib/Types.Hdr"
        |
Get_Types                       SETS    ""
        ]
        $Get_Types

        [       :LNOT: :DEF: Get_OS
        GBLS    Get_OS
        ]
        [       :LNOT: :DEF: OS_Hdr
Get_OS                          SETS    "GET oslib/OS.Hdr"
        |
Get_OS                          SETS    ""
        ]
        $Get_OS

        [       :LNOT: :DEF: Get_Territory
        GBLS    Get_Territory
        ]
        [       :LNOT: :DEF: Territory_Hdr
Get_Territory                   SETS    "GET oslib/Territory.Hdr"
        |
Get_Territory                   SETS    ""
        ]
        $Get_Territory

;Symbols for constants
Error_UnknownAlphabet           *       &640
Error_UnknownCountry            *       &641
Error_UnknownKeyboard           *       &642

;Symbols for SWI's and SWI reason codes
Service_International           *       &43

ServiceInternational_CountryNameToCountryNumber *       &0
   ;Entry
   ;  R1 = &43
   ;  R2 = &0
   ;  R3 -> country_name (String)
   ;Exit
   ;  R1 = unclaimed (Bool)
   ;  R4 = country_no (Territory_T)

ServiceInternational_AlphabetNameToAlphabetNumber *       &1
   ;Entry
   ;  R1 = &43
   ;  R2 = &1
   ;  R3 -> alphabet_name (String)
   ;Exit
   ;  R1 = unclaimed (Bool)
   ;  R4 = alphabet_no (Territory_AlphabetNumber)

ServiceInternational_CountryNumberToCountryName *       &2
   ;Entry
   ;  R1 = &43
   ;  R2 = &2
   ;  R3 = country_no (Territory_T)
   ;  R4 = buffer (pointer to String)
   ;  R5 = size (Int)
   ;Exit
   ;  R1 = unclaimed (Bool)
   ;  R5 = used (Int)

ServiceInternational_AlphabetNumberToAlphabetName *       &3
   ;Entry
   ;  R1 = &43
   ;  R2 = &3
   ;  R3 = alphabet_no (Territory_AlphabetNumber)
   ;  R4 = buffer (pointer to String)
   ;  R5 = size (Int)
   ;Exit
   ;  R1 = unclaimed (Bool)
   ;  R5 = used (Int)

ServiceInternational_CountryNumberToAlphabetNumber *       &4
   ;Entry
   ;  R1 = &43
   ;  R2 = &4
   ;  R3 = country_no (Territory_T)
   ;Exit
   ;  R1 = unclaimed (Bool)
   ;  R4 = alphabet_no (Territory_AlphabetNumber)

ServiceInternational_DefineChars *       &5
   ;Entry
   ;  R1 = &43
   ;  R2 = &5
   ;  R3 = alphabet_no (Territory_AlphabetNumber)
   ;  R4 = first (Byte)
   ;  R5 = last (Byte)
   ;Exit
   ;  R1 = unclaimed (Bool)

ServiceInternational_NewKeyboard *       &6
   ;Entry
   ;  R1 = &43
   ;  R2 = &6
   ;  R3 = keyboard_no (Int)
   ;  R4 = alphabet_no (Territory_AlphabetNumber)

ServiceInternational_DefineUCSCharacter *       &7
   ;Entry
   ;  R1 = &43
   ;  R2 = &7
   ;  R3 = char_index (Int)
   ;  R4 = ucs_charcode (Int)
   ;Exit
   ;  R1 = unclaimed (Bool)

ServiceInternational_GetUCSConversionTable *       &8
   ;Entry
   ;  R1 = &43
   ;  R2 = &8
   ;  R3 = alphabet_no (Int)
   ;Exit
   ;  R1 = unclaimed (Bool)
   ;  R4 = char_table (pointer to Void)

        ]
        END
